/**
 * Created by hjx on 2017/7/30.
 */
/*给表单绑定一个submit事件*/
Template.postSubmit.events({
    'submit form': function(e) {
        e.preventDefault();

        var post = {
            url: $(e.target).find('[name=url]').val(),
            title: $(e.target).find('[name=title]').val()
        };

        var errors = validatePost(post);
        if (errors.title || errors.url)
            return Session.set('postSubmitErrors', errors);

        /*在服务器端调用postInsert方法，服务器执行插入数据*/
        Meteor.call('postInsert', post, function(error, result) {
            // 显示错误信息并退出
            if (error)
                return Errors.throw(error.reason);

            // 显示结果，跳转页面
            if (result.postExists)
                Errors.throw('该链接已经存在');

            Router.go('postPage', {_id: result._id});
        });
    }
});

/*在模板初始化时在会话创建一个集合，用来收集表单错误*/
Template.postSubmit.onCreated(function() {
    Session.set('postSubmitErrors', {});
});

/*field，  helper传的参数（传的自己的标识值）*/
Template.postSubmit.helpers({
    errorMessage: function(field) {
        return Session.get('postSubmitErrors')[field];
    },
    errorClass: function (field) {
        return !!Session.get('postSubmitErrors')[field] ? 'has-error' : '';
    }
});